package com.yunche.yunchebusiness.entity

import java.io.Serializable

/**
 * Create by Crcker on 2018/12/21 15:06
 * Email: Crcker@163.com
 */


class SeriesEntity(
    val brand: String,
    val code: String,
    val heat: Int,
    val id: Int,
    val imgUrl: String,
    val name: String
) : Serializable


data class ModelEntity(
    val brand: String,
    val code: String,
    val fullName: String,
    val id: Int,
    val modelYear: Int,
    val name: String,
    val series: String
)


data class FinanceEntity(
    val amount: Float,
    val createTime: String,
    val status: Int,
    val tenantId: String,
    val updateTime: String,
    val version: Int
)

data class TenantEntity(
    val address: String,
    val applicationType: Int,
    val approvalStatus: Int,
    val areaId: Long,
    val areaName: String,
    val contactDepartment: String,
    val contactEmail: String,
    val contactIdCard: Any,
    val contactMobile: String,
    val contactName: String,
    val contactPosition: String,
    val cooperationStartTime: String,
    val curPage: Any,
    val enterSystemTime: Any,
    val id: String,
    val insertOperator: Any,
    val insertTime: String,
    val isvalid: Any,
    val level: Int,
    val marketAddress: Any,
    val marketId: String,
    val name: String,
    val pageSize: Int,
    val parentAreaId: Long,
    val parentAreaName: String,
    val park: Any,
    val partnerId: Any,
    val registerTime: Any,
    val remark: String,
    val shopName: Any,
    val taxpayerCode: Any,
    val tenantLogo: Any,
    val total: Any,
    val type: Any,
    val updateOperatory: Any,
    val updateTime: Any
) : Serializable


data class TenantInfoEntity(
    val accountList: List<Account>,
    val partnerList: List<Partner>,
    val tenant: TenantEntity,
    val tenantFinanceAccount: TenantFinanceAccount
) : Serializable

data class TenantFinanceAccount(
    val amount: Double,
    val createTime: Any,
    val status: Int,
    val tenantId: String,
    val updateTime: String,
    val version: Int
) : Serializable

data class Account(
    val account: String,
    val accountName: String,
    val bank: String,
    val createTime: String,
    val id: Int,
    val status: Any,
    val tenantId: String,
    val updateTime: String,
    val bankName: String,
    val accoutCardId: String,
    val bankIcon: String
) : Serializable

data class LoginEntity(
    val address: String,
    val applicationType: Int,
    val approvalStatus: Int,
    val areaId: Long,
    val areaName: String,
    val checkTenant: Boolean,
    val contactDepartment: String,
    val contactEmail: Any,
    val contactIdCard: Any,
    val contactMobile: String,
    val contactName: String,
    val contactPosition: String,
    val cooperationStartTime: String,
    val curPage: Any,
    val enterSystemTime: Any,
    val id: String,
    val insertOperator: Any,
    val insertTime: String,
    val isvalid: Any,
    val level: Int,
    val marketAddress: Any,
    val marketId: String,
    val name: String,
    val pageSize: Int,
    val parentAreaId: Long,
    val parentAreaName: String,
    val park: Any,
    val partnerId: Any,
    val registerTime: String,
    val remark: String,
    val shopName: Any,
    val taxpayerCode: Any,
    val tenantLogo: Any,
    val token: Any,
    val total: Any,
    val type: Any,
    val updateOperatory: Any,
    val updateTime: Any
)

data class TenantBankList(
    val account: String,
    val accountName: String,
    val bank: String,
    val createTime: String,
    val id: Int,
    val status: Any,
    val tenantId: String,
    val updateTime: String
)

data class BankList(
    val account: String,
    val accountName: String,
    val accoutCardId: String,
    val bank: String,
    val bankCode: Any,
    val bankName: String,
    val createTime: String,
    val icon: Any,
    val id: Int,
    val status: Any,
    val tenantId: String,
    val updateTime: String
)

data class Partner(
    val createTime: String,
    val id: Int,
    val marketId: Any,
    val marketName: Any,
    val partnerId: Int,
    val partnerName: String,
    val tenantId: String,
    val updateTime: String
) : Serializable


data class BankListEntity(
    val code: String,
    val icon: String,
    val id: Int,
    val name: String
)

//账本-基本信息包装
data class AccountBookBaseInfoMainEntity(
    var list: MutableList<AccountBookEntity>,
    var hasNextPage: Boolean,
    var total: Int
)


//订单，资金，包装成同一个类
data class AccountBookEntity(
    //公共
    val id: Long,
    //订单
    val carIcon: String,
    val orderId: String,
    val carDetail: String,
    val carModel: String,
    val carBrand: String,
    val partnerName: String,
    val loanTime: String,
    val tenantRebate: String,
    val carPrice: Double,
    val createDate: String,
    val creditOperatorName: String,
    val name: String,
    val orderStatus: Int,//订单状态 1贷款办理中  2贷款办理成功  3贷款办理失败',
    //资金
    val type: Int,//1入账  2：提现
    val sum: Double,
    val approverTime: String,
    val applicantTime: String,
    val status: Int,// 1审核中   2打回  3通过  -1 通过
    val remittanceStatus: Int,
    val remittanceTime: String,
    val accountName: String,
    val account: String,
    val totalAmount: Float,
    val brandName: String,
    val modelsName: String,
    val seriesName: String,
    val bankIcon: String
)


//账本-基础信息
data class AccountBookBaseInfo(
    val rebate: Double,//返利
    val count: Int,//车辆数
    val sum: Double,//车款
    val time: String,//年月
    var maxRebate: Double,
    var maxCount: Int,
    var maxSum: Double
)

data class Tenant(
    val applicationType: Int,
    val approvalStatus: Int,
    val contactDepartment: String,
    val contactEmail: Any,
    val contactIdCard: Any,
    val contactMobile: String,
    val contactName: String,
    val contactPosition: String,
    val cooperationStartTime: String,
    val curPage: Any,
    val enterSystemTime: Any,
    val id: String,
    val insertOperator: Any,
    val insertTime: String,
    val isvalid: Any,
    val level: Int,
    val marketId: Any,
    val name: String,
    val pageSize: Int,
    val partnerId: Any,
    val registerTime: Any,
    val remark: String,
    val taxpayerCode: Any,
    val total: Any,
    val type: Any,
    val updateOperatory: Any,
    val updateTime: Any
)


data class ColorEntity(
    val neishiColor: String,
    val neishiColorInfo: List<NeishiColorInfo>,
    val styleColor: List<String>,
    val styleColorInfo: List<StyleColorInfo>
)

data class StyleColorInfo(
    val colorName: String,
    val colorValue: String
)

data class NeishiColorInfo(
    val colorName: String,
    val colorValue: String
)


data class EvaluateEntity(
    val b2CPrices: C2BPrices,
    val c2BPrices: C2BPrices,
    val ncmsrp: String,
    val trimId: String
)


data class EvaluateInfo(
    val bandCode: String,
    val buyCarDate: String,
    val cityName: String,
    val maxEvaluate: Float,
    val mileage: String,
    val minEvaluate: Float,
    val modelCode: String,
    val seriesCode: String,
    val modelName: String,
    val brandName: String,
    var id: Int,
    var seriesName: String?,
    var icon: String?
) : Serializable

data class EvaluateRecord(
    val bandCode: String,
    val brandName: String,
    val buyCarDate: String,
    val carIcon: String,
    val cityName: String,
    val id: Int,
    val insertTime: String,
    val maxEvaluate: Double,
    val mileage: String,
    val minEvaluate: Double,
    val modelCode: String,
    val modelsName: String,
    val seriesCode: String,
    val seriesName: String,
    val userId: String
)


data class C(
    val low: String,
    val mid: String,
    val up: String
)

data class A(
    val low: String,
    val mid: String,
    val up: String
)

data class B(
    val low: String,
    val mid: String,
    val up: String
)

data class C2BPrices(
    val a: A,
    val b: B,
    val c: C
)


data class AppVersionEntity(
    val curPage: Any,
    val downloadUrl: String,
    val feature: Any,
    val gmtCreate: String,
    val gmtModify: String,
    val id: Int,
    val info: Any,
    val isLatestVersion: Int,
    val pageSize: Int,
    val releaseDate: String,
    val status: Int,
    val storeType: Int,
    val terminalType: Int,
    val total: Any,
    val updateType: Int,
    val versionCode: String,
    val versionName: String
)